package com.iflytek.jcy.supervise.clue.component.httpinterface;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.dtflys.forest.annotation.JSONBody;
import com.dtflys.forest.annotation.Post;
import com.dtflys.forest.annotation.Query;
import com.dtflys.forest.annotation.Retry;
import com.iflytek.jcy.supervise.clue.component.httpinterface.param.OuterDeptParam;
import com.iflytek.jcy.supervise.clue.component.httpinterface.param.OuterZbajParam;
import com.iflytek.jcy.supervise.clue.component.httpinterface.result.OuterDept;
import com.iflytek.jcy.supervise.clue.component.httpinterface.result.OuterDeptNew;
import com.iflytek.jcy.supervise.clue.component.httpinterface.result.OuterDeptOrg;
import com.iflytek.jcy.supervise.clue.component.httpinterface.result.OuterDeptPerson;
import com.iflytek.jcy.supervise.clue.component.httpinterface.result.OuterResponse;
import com.iflytek.jcy.supervise.clue.component.httpinterface.result.OuterUserInfo;
import com.iflytek.jcy.supervise.clue.component.httpinterface.result.OuterUserInfo2;
import com.iflytek.jcy.supervise.clue.component.httpinterface.result.OuterZbajlb;

/**
 * 
 * <br>
 * 标题:数据中台接口 <br>
 * 描述: <br>
 * 公司: www.iflytek.com<br>
 * @autho dgyu
 * @time 2022年10月24日 下午4:32:53
 */
// 整个接口下的所有方法请求都默认绑定该根地址
// @Address(source = HttpAddressSource.class) // 动态根地址
//@BaseRequest(interceptor = { SimpleInterceptor.class })
public interface SjztHttpInterface {

	/** 登录
	 * 
	 * @return */
	@Post("#{sjzt.url}#{sjzt.login}")
	@Retry(maxRetryCount = "3", maxRetryInterval = "100")
	OuterResponse<OuterUserInfo> login(@JSONBody JSONObject jSONObject);

	/** 单位列表 */
	@Post("#{sjzt.url}#{sjzt.getDepartment}")
	@Retry(maxRetryCount = "5", maxRetryInterval = "100")
	OuterResponse<List<OuterDeptNew>> depList(@JSONBody JSONObject js);
	
	/** 单位部门 */
	@Post("#{sjzt.url}#{sjzt.dwbmxx}")
	//@Post("#{sjzt.dwbmxx}")
	@Retry(maxRetryCount = "5", maxRetryInterval = "100")
	OuterResponse<List<OuterDeptOrg>> dwbmxx(@JSONBody("dwbm") String dwbm);
	
	/** 单位人员信息 */
	@Post("#{sjzt.url}#{sjzt.dwryxx}")
	//@Post("#{sjzt.dwryxx}")
	@Retry(maxRetryCount = "5", maxRetryInterval = "100")
	OuterResponse<List<OuterDeptPerson>> dwryxx(@JSONBody("dwbm") String dwbm);
	
	/** 在办案件列表 */
	@Post("#{sjzt.url}#{sjzt.zbajlb}")
	//@Post("#{sjzt.zbajlb}")
	@Retry(maxRetryCount = "5", maxRetryInterval = "100")
	OuterResponse<OuterZbajlb> zbajlb(@JSONBody OuterZbajParam outerZbajParam);
	
	/**
     * 获取用户信息
     * @param jSONObject
     * @return
     */
    @Post("#{sjzt.url}#{sjzt.getUserInfo}")
    //@Post("#{sjzt.getUserInfo}")
    @Retry(maxRetryCount = "3", maxRetryInterval = "100")
    OuterResponse<OuterUserInfo2> userInfo(@JSONBody JSONObject jSONObject);
}
